Home:ALL Converter>Centos not using available memory

Centos not using available memory

Ask Time:2021-07-13T19:34:26         Author:Benji Kok

Json Formatter

I have Centos installed on a server with 64gb memory and it seems as if the memory usage is being suppressed.

I came to this conclusion by running an insert statement where I insert 10million rows into a Postgres table in both a Timescaledb and a standard Postgres instance hosted on Docker.

I monitored the insert process in three different ways:

  1. Docker stats timescaledb:
CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
timescaledb         73.14%              10.42 MiB / 62.75 GiB   0.02%               8.46 kB / 8.39 kB   0 B / 15.1 GB       12
  1. free -i gives the following:
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
16298 avahi     20   0   16.2g 762356 759908 R  41.5  1.2   0:22.72 postgres
16127 avahi     20   0   16.2g 693080 691968 S   4.3  1.1   0:01.29 postgres
16129 avahi     20   0   16.2g  17748  16712 S   2.3  0.0   0:00.87 postgres
 1578 root      30  10 1232780  86976  11568 S   0.7  0.1   0:46.34 osqueryd
17014 root      20   0  162264   2480   1596 R   0.7  0.0   0:00.03 top
  928 root      20   0   90608   3212   2352 S   0.3  0.0   0:03.47 rngd
16128 avahi     20   0   16.2g 132064 131016 S   0.3  0.2   0:00.18 postgres
  1. free -h gives the following
              total        used        free      shared  buff/cache   available
Mem:            62G        1.0G         58G        1.1G        3.1G         56G
Swap:           62G          0B         62G

I know that Timescaledb is an extension of Postgres which comes with its own memory configurations, but the Docker container of Timescaledb configures these automatically for you (for instance effective cache size is set at 48gb as opposed to the default 4gb that Postgres ships with). I also ran a similar process with Apache spark with 16gb assigned to the worker and it ran into an oom error. Additionally, I did a similar test on a different smaller VM and the memory usage increased as expected. All of this leads me to believe that it's a Centos config setting that I am missing somewhere, and nothing to do with Timescale/Postgres?

I have added the following parameters to vm.overcommit_memory = 2 and vm.overcommit_ratio = 95 in /etc/sysctl.conf and ran sysctl -p to implement the settings, but this didn't make a difference.

kernel.shmall = 8224280
kernel.shmmax = 33686650880
kernel.shmmni = 4096
vm.overcommit_memory = 2 
vm.overcommit_ratio = 95 

Below is the output from cat /proc/meminfo

MemTotal:       65794240 kB
MemFree:        61098656 kB
MemAvailable:   59252660 kB
Buffers:            2120 kB
Cached:          3467144 kB
SwapCached:            0 kB
Active:          2817620 kB
Inactive:         884816 kB
Active(anon):    1109220 kB
Inactive(anon):   234708 kB
Active(file):    1708400 kB
Inactive(file):   650108 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      65535996 kB
SwapFree:       65535996 kB
Dirty:                88 kB
Writeback:             0 kB
AnonPages:        233188 kB
Mapped:          1175120 kB
Shmem:           1110756 kB
Slab:             204044 kB
SReclaimable:     142700 kB
SUnreclaim:        61344 kB
KernelStack:        7232 kB
PageTables:        14672 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    128040524 kB
Committed_AS:   18709300 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      408824 kB
VmallocChunk:   34325399548 kB
Percpu:             9216 kB
HardwareCorrupted:     0 kB
AnonHugePages:     96256 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      133604 kB
DirectMap2M:    66965504 kB

Is there maybe something I can try to increase my memory usage? Is there maybe a config setting that I am missing somehere?

Thanks in advance for any help

Author:Benji Kok,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/68361610/centos-not-using-available-memory
yy